<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
	<meta name="misapplication-tap-highlight" content="no"/>
	<meta name="HandheldFriendly" content="true"/>
	<meta name="MobileOptimized" content="320"/>
	<title>Title</title>
</head>
<body>
<button onclick="pay()">支付1分钱</button>
</body>

<!-- 微信js -->
<script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="./js/common.js"></script>

<script>

	$(document).ready(function () {
		/** 初始化jssdk **/
		$.ajax({
			url: HOST + '/api/jssdk/sign?url=' + location.href.split('#')[0],
			type: 'get',
			success: function (res) {
				wx.config({
					debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
					appId: 'wx3d857b42797b5eb4', // 必填，公众号的唯一标识
					timestamp: res.content.timestamp, // 必填，生成签名的时间戳
					nonceStr: res.content.nonceStr, // 必填，生成签名的随机串
					signature: res.content.signature,// 必填，签名，见附录1
					jsApiList: ['chooseWXPay'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
				});
			},
			error: function () {
				alert('获取jssdk失败');
			}
		})


		/** 获取环境 isMiniProgram 小程序为true, 否则为false **/
		wx.miniProgram.getEnv(function(res) { isMiniProgram = res.miniprogram });
	});

	/** 支付 **/
	function pay() {
		//支付接口数据，正式应该多传个 订单号orderCode！！
		data = {
			"openid": SELFID, //openid
			"totalFee": 0.01,  //总价,单位：元
			"isMiniProgram": isMiniProgram  //是否是小程序
		}
		$.ajax({
			url: HOST + '/api/mini-program/prepay',
			type: 'post',
			data: JSON.stringify(data),
			success: function (res) {
				if(res.ret == -1){
					alert(res.content);
					return;
				}
				var timeStamp = res.content.timeStamp;
				var nonceStr = res.content.nonceStr
				var package = res.content.package
				var signature = res.content.signature

				if (isMiniProgram){
					/** 如果是小程序，则跳到小程序支付Page **/
					params = "timeStamp=" + timeStamp + "&nonceStr=" + nonceStr + "&package="
						+ package + "&paySign=" + signature + "&orderCode=" + res.content.orderCode
					wx.miniProgram.navigateTo({url: '../pay/pay?' + params})

				}else{
					/** 不是小程序，调用jssdk的支付 **/
					wx.chooseWXPay({
						appId: 'wx3d857b42797b5eb4',
						timestamp: res.content.timeStamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
						nonceStr: res.content.nonceStr, // 支付签名随机串，不长于 32 位
						package: res.content.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=***）
						signType: 'MD5', // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
						paySign: res.content.signature, // 支付签名
						success: function (res) {
							// 支付成功后的回调函数
							if (res.errMsg == "chooseWXPay:ok") {
								//支付成功
								alert('支付成功');
							} else {
								alert(res.errMsg);
							}
						},
						cancel: function (res) {
							//支付取消
							alert('支付取消');
						},
						error: function (res) {
							// 支付失败的回调函数
							alert(res);
							alert("支付失败");
						}
					});
				}

			},
			error: function () {
				alert('支付失败');
			}
		})
	}
</script>
</html>
